//
//  BaseNetRequestMacros.h
//  WeatherBar
//
//  Created by Bert on 2024/6/7.
//

#import <Foundation/Foundation.h>

#pragma mark - User Settings
#define kAFNetworkingTimeoutInterval 60.0f

#pragma mark - User Settings - 打印日志格式设置
#define kIsPrintLog 1   //是否打印调试日志，1：打印，0 不打印；
#define kPrintDebugPostStyle @"[Request URL]:%@ \n[Parameters]:\n--------\n %@ \n-------- \n"

#define kPrintDebugSuccessStyle1 @"\n\n请求地址： %@ \nHeader参数： %@\nBody参数： %@ \n返回结果： %@\n"
#define kPrintDebugSuccessStyle2 @"[Request URL]:%@,[Response]:\n--------\n %@ \n-------- \n"
#define kPrintDebugSuccessStylePOST @"\n请求地址：POST %@ \nHeader参数： %@\nBody参数： %@ \n返回结果： %@\n"
#define kPrintDebugSuccessStyleGET @"\n\n请求地址：GET %@ \nHeader参数： %@\nBody参数： %@ \n返回结果： %@\n"
#define kPrintDebugSuccessStylePUT @"\n\n请求地址：DELETE %@ \nHeader参数： %@\nBody参数： %@ \n返回结果： %@\n"
#define kPrintDebugSuccessStyleDELETE @"\n\n请求地址：DELETE %@ \nHeader参数： %@\nBody参数： %@ \n返回结果： %@\n"


#define kPrintDebugFailureStyle1 @"[Request URL]:%@,[Failure error]:\n--------\n %@ \n-------- \n"
#define kPrintDebugFailureStyle2 @"[Request URL]:%@,[Failure error]:%@"

#pragma mark - NS_ENUM
typedef NS_ENUM(NSInteger,NetRequestStatus) {
    /// 请求成功
    NetRequestStatus_Success = 1,
    /// 无网络
    NetRequestStatus_CanNotReachable    = -10001,
    //返回数据为空
    NetRequestStatus_ResponseDataIsNull = -9999,
    /// 请求失败
    NetRequestStatus_ParameterError     = -10000,
    /// 格式错误
    NetRequestStatus_FormatError        = -10003
};

typedef NS_ENUM(NSInteger,NetRequestType) {
    NetRequestType_POST,
    NetRequestType_GET
};

typedef NS_ENUM(NSInteger, NetworkReachabilityStatus) {
    NetworkReachabilityStatusUnknown          = -1,
    NetworkReachabilityStatusNotReachable     = 0,
    NetworkReachabilityStatusReachableViaWWAN = 1,
    NetworkReachabilityStatusReachableViaWiFi = 2,
};

//将网络状态类型转成 NSInteger
extern NSInteger NSIntegerFromNetRequestStatus(NetRequestStatus netRequestStatus);

//将NSInteger类型转成 网络状态类型
extern NetRequestStatus NetRequestStatusFromNSInteger(NSInteger intNetRequestStatus);

#pragma mark - Define
#define kBaseNetRequestErrorDomain @"BaseNetRequestErrorDomain"

NS_ASSUME_NONNULL_BEGIN

@interface BaseNetRequestMacros : NSObject

@end

NS_ASSUME_NONNULL_END
